home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / openssl / pkcs7.h < prev    next >
C/C++ Source or Header  |  2006-04-25  |  16KB  |  452 lines

  1. /* crypto/pkcs7/pkcs7.h */
  2. /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  3.  * All rights reserved.
  4.  *
  5.  * This package is an SSL implementation written
  6.  * by Eric Young (eay@cryptsoft.com).
  7.  * The implementation was written so as to conform with Netscapes SSL.
  8.  * 
  9.  * This library is free for commercial and non-commercial use as long as
  10.  * the following conditions are aheared to.  The following conditions
  11.  * apply to all code found in this distribution, be it the RC4, RSA,
  12.  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
  13.  * included with this distribution is covered by the same copyright terms
  14.  * except that the holder is Tim Hudson (tjh@cryptsoft.com).
  15.  * 
  16.  * Copyright remains Eric Young's, and as such any Copyright notices in
  17.  * the code are not to be removed.
  18.  * If this package is used in a product, Eric Young should be given attribution
  19.  * as the author of the parts of the library used.
  20.  * This can be in the form of a textual message at program startup or
  21.  * in documentation (online or textual) provided with the package.
  22.  * 
  23.  * Redistribution and use in source and binary forms, with or without
  24.  * modification, are permitted provided that the following conditions
  25.  * are met:
  26.  * 1. Redistributions of source code must retain the copyright
  27.  *    notice, this list of conditions and the following disclaimer.
  28.  * 2. Redistributions in binary form must reproduce the above copyright
  29.  *    notice, this list of conditions and the following disclaimer in the
  30.  *    documentation and/or other materials provided with the distribution.
  31.  * 3. All advertising materials mentioning features or use of this software
  32.  *    must display the following acknowledgement:
  33.  *    "This product includes cryptographic software written by
  34.  *     Eric Young (eay@cryptsoft.com)"
  35.  *    The word 'cryptographic' can be left out if the rouines from the library
  36.  *    being used are not cryptographic related :-).
  37.  * 4. If you include any Windows specific code (or a derivative thereof) from 
  38.  *    the apps directory (application code) you must include an acknowledgement:
  39.  *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
  40.  * 
  41.  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
  42.  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  43.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  44.  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  45.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  46.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  47.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  48.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  49.  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  50.  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  51.  * SUCH DAMAGE.
  52.  * 
  53.  * The licence and distribution terms for any publically available version or
  54.  * derivative of this code cannot be changed.  i.e. this code cannot simply be
  55.  * copied and put under another distribution licence
  56.  * [including the GNU Public Licence.]
  57.  */
  58.  
  59. #ifndef HEADER_PKCS7_H
  60. #define HEADER_PKCS7_H
  61.  
  62. #include <openssl/asn1.h>
  63. #include <openssl/bio.h>
  64. #include <openssl/e_os2.h>
  65.  
  66. #include <openssl/symhacks.h>
  67. #include <openssl/ossl_typ.h>
  68.  
  69. #ifdef  __cplusplus
  70. extern "C" {
  71. #endif
  72.  
  73. #ifdef OPENSSL_SYS_WIN32
  74. /* Under Win32 thes are defined in wincrypt.h */
  75. #undef PKCS7_ISSUER_AND_SERIAL
  76. #undef PKCS7_SIGNER_INFO
  77. #endif
  78.  
  79. /*
  80. Encryption_ID        DES-CBC
  81. Digest_ID        MD5
  82. Digest_Encryption_ID    rsaEncryption
  83. Key_Encryption_ID    rsaEncryption
  84. */
  85.  
  86. typedef struct pkcs7_issuer_and_serial_st
  87.     {
  88.     X509_NAME *issuer;
  89.     ASN1_INTEGER *serial;
  90.     } PKCS7_ISSUER_AND_SERIAL;
  91.  
  92. typedef struct pkcs7_signer_info_st
  93.     {
  94.     ASN1_INTEGER             *version;    /* version 1 */
  95.     PKCS7_ISSUER_AND_SERIAL        *issuer_and_serial;
  96.     X509_ALGOR            *digest_alg;
  97.     STACK_OF(X509_ATTRIBUTE)    *auth_attr;    /* [ 0 ] */
  98.     X509_ALGOR            *digest_enc_alg;
  99.     ASN1_OCTET_STRING        *enc_digest;
  100.     STACK_OF(X509_ATTRIBUTE)    *unauth_attr;    /* [ 1 ] */
  101.  
  102.     /* The private key to sign with */
  103.     EVP_PKEY            *pkey;
  104.     } PKCS7_SIGNER_INFO;
  105.  
  106. DECLARE_STACK_OF(PKCS7_SIGNER_INFO)
  107. DECLARE_ASN1_SET_OF(PKCS7_SIGNER_INFO)
  108.  
  109. typedef struct pkcs7_recip_info_st
  110.     {
  111.     ASN1_INTEGER            *version;    /* version 0 */
  112.     PKCS7_ISSUER_AND_SERIAL        *issuer_and_serial;
  113.     X509_ALGOR            *key_enc_algor;
  114.     ASN1_OCTET_STRING        *enc_key;
  115.     X509                *cert; /* get the pub-key from this */
  116.     } PKCS7_RECIP_INFO;
  117.  
  118. DECLARE_STACK_OF(PKCS7_RECIP_INFO)
  119. DECLARE_ASN1_SET_OF(PKCS7_RECIP_INFO)
  120.  
  121. typedef struct pkcs7_signed_st
  122.     {
  123.     ASN1_INTEGER            *version;    /* version 1 */
  124.     STACK_OF(X509_ALGOR)        *md_algs;    /* md used */
  125.     STACK_OF(X509)            *cert;        /* [ 0 ] */
  126.     STACK_OF(X509_CRL)        *crl;        /* [ 1 ] */
  127.     STACK_OF(PKCS7_SIGNER_INFO)    *signer_info;
  128.  
  129.     struct pkcs7_st            *contents;
  130.     } PKCS7_SIGNED;
  131. /* The above structure is very very similar to PKCS7_SIGN_ENVELOPE.
  132.  * How about merging the two */
  133.  
  134. typedef struct pkcs7_enc_content_st
  135.     {
  136.     ASN1_OBJECT            *content_type;
  137.     X509_ALGOR            *algorithm;
  138.     ASN1_OCTET_STRING        *enc_data;    /* [ 0 ] */
  139.     const EVP_CIPHER        *cipher;
  140.     } PKCS7_ENC_CONTENT;
  141.  
  142. typedef struct pkcs7_enveloped_st
  143.     {
  144.     ASN1_INTEGER            *version;    /* version 0 */
  145.     STACK_OF(PKCS7_RECIP_INFO)    *recipientinfo;
  146.     PKCS7_ENC_CONTENT        *enc_data;
  147.     } PKCS7_ENVELOPE;
  148.  
  149. typedef struct pkcs7_signedandenveloped_st
  150.     {
  151.     ASN1_INTEGER            *version;    /* version 1 */
  152.     STACK_OF(X509_ALGOR)        *md_algs;    /* md used */
  153.     STACK_OF(X509)            *cert;        /* [ 0 ] */
  154.     STACK_OF(X509_CRL)        *crl;        /* [ 1 ] */
  155.     STACK_OF(PKCS7_SIGNER_INFO)    *signer_info;
  156.  
  157.     PKCS7_ENC_CONTENT        *enc_data;
  158.     STACK_OF(PKCS7_RECIP_INFO)    *recipientinfo;
  159.     } PKCS7_SIGN_ENVELOPE;
  160.  
  161. typedef struct pkcs7_digest_st
  162.     {
  163.     ASN1_INTEGER            *version;    /* version 0 */
  164.     X509_ALGOR            *md;        /* md used */
  165.     struct pkcs7_st         *contents;
  166.     ASN1_OCTET_STRING        *digest;
  167.     } PKCS7_DIGEST;
  168.  
  169. typedef struct pkcs7_encrypted_st
  170.     {
  171.     ASN1_INTEGER            *version;    /* version 0 */
  172.     PKCS7_ENC_CONTENT        *enc_data;
  173.     } PKCS7_ENCRYPT;
  174.  
  175. typedef struct pkcs7_st
  176.     {
  177.     /* The following is non NULL if it contains ASN1 encoding of
  178.      * this structure */
  179.     unsigned char *asn1;
  180.     long length;
  181.  
  182. #define PKCS7_S_HEADER    0
  183. #define PKCS7_S_BODY    1
  184. #define PKCS7_S_TAIL    2
  185.     int state; /* used during processing */
  186.  
  187.     int detached;
  188.  
  189.     ASN1_OBJECT *type;
  190.     /* content as defined by the type */
  191.     /* all encryption/message digests are applied to the 'contents',
  192.      * leaving out the 'type' field. */
  193.     union    {
  194.         char *ptr;
  195.  
  196.         /* NID_pkcs7_data */
  197.         ASN1_OCTET_STRING *data;
  198.  
  199.         /* NID_pkcs7_signed */
  200.         PKCS7_SIGNED *sign;
  201.  
  202.         /* NID_pkcs7_enveloped */
  203.         PKCS7_ENVELOPE *enveloped;
  204.  
  205.         /* NID_pkcs7_signedAndEnveloped */
  206.         PKCS7_SIGN_ENVELOPE *signed_and_enveloped;
  207.  
  208.         /* NID_pkcs7_digest */
  209.         PKCS7_DIGEST *digest;
  210.  
  211.         /* NID_pkcs7_encrypted */
  212.         PKCS7_ENCRYPT *encrypted;
  213.  
  214.         /* Anything else */
  215.         ASN1_TYPE *other;
  216.         } d;
  217.     } PKCS7;
  218.  
  219. DECLARE_STACK_OF(PKCS7)
  220. DECLARE_ASN1_SET_OF(PKCS7)
  221. DECLARE_PKCS12_STACK_OF(PKCS7)
  222.  
  223. #define PKCS7_OP_SET_DETACHED_SIGNATURE    1
  224. #define PKCS7_OP_GET_DETACHED_SIGNATURE    2
  225.  
  226. #define PKCS7_get_signed_attributes(si)    ((si)->auth_attr)
  227. #define PKCS7_get_attributes(si)    ((si)->unauth_attr)
  228.  
  229. #define PKCS7_type_is_signed(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_signed)
  230. #define PKCS7_type_is_encrypted(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_encrypted)
  231. #define PKCS7_type_is_enveloped(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_enveloped)
  232. #define PKCS7_type_is_signedAndEnveloped(a) \
  233.         (OBJ_obj2nid((a)->type) == NID_pkcs7_signedAndEnveloped)
  234. #define PKCS7_type_is_data(a)   (OBJ_obj2nid((a)->type) == NID_pkcs7_data)
  235.  
  236. #define PKCS7_set_detached(p,v) \
  237.         PKCS7_ctrl(p,PKCS7_OP_SET_DETACHED_SIGNATURE,v,NULL)
  238. #define PKCS7_get_detached(p) \
  239.         PKCS7_ctrl(p,PKCS7_OP_GET_DETACHED_SIGNATURE,0,NULL)
  240.  
  241. #define PKCS7_is_detached(p7) (PKCS7_type_is_signed(p7) && PKCS7_get_detached(p7))
  242.  
  243. #ifdef SSLEAY_MACROS
  244. #ifndef PKCS7_ISSUER_AND_SERIAL_digest
  245. #define PKCS7_ISSUER_AND_SERIAL_digest(data,type,md,len) \
  246.         ASN1_digest((int (*)())i2d_PKCS7_ISSUER_AND_SERIAL,type,\
  247.                     (char *)data,md,len)
  248. #endif
  249. #endif
  250.  
  251. /* S/MIME related flags */
  252.  
  253. #define PKCS7_TEXT        0x1
  254. #define PKCS7_NOCERTS        0x2
  255. #define PKCS7_NOSIGS        0x4
  256. #define PKCS7_NOCHAIN        0x8
  257. #define PKCS7_NOINTERN        0x10
  258. #define PKCS7_NOVERIFY        0x20
  259. #define PKCS7_DETACHED        0x40
  260. #define PKCS7_BINARY        0x80
  261. #define PKCS7_NOATTR        0x100
  262. #define    PKCS7_NOSMIMECAP    0x200
  263. #define PKCS7_NOOLDMIMETYPE    0x400
  264. #define PKCS7_CRLFEOL        0x800
  265.  
  266. /* Flags: for compatibility with older code */
  267.  
  268. #define SMIME_TEXT    PKCS7_TEXT
  269. #define SMIME_NOCERTS    PKCS7_NOCERTS
  270. #define SMIME_NOSIGS    PKCS7_NOSIGS
  271. #define SMIME_NOCHAIN    PKCS7_NOCHAIN
  272. #define SMIME_NOINTERN    PKCS7_NOINTERN
  273. #define SMIME_NOVERIFY    PKCS7_NOVERIFY
  274. #define SMIME_DETACHED    PKCS7_DETACHED
  275. #define SMIME_BINARY    PKCS7_BINARY
  276. #define SMIME_NOATTR    PKCS7_NOATTR
  277.  
  278. DECLARE_ASN1_FUNCTIONS(PKCS7_ISSUER_AND_SERIAL)
  279.  
  280. #ifndef SSLEAY_MACROS
  281. int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data,const EVP_MD *type,
  282.     unsigned char *md,unsigned int *len);
  283. #ifndef OPENSSL_NO_FP_API
  284. PKCS7 *d2i_PKCS7_fp(FILE *fp,PKCS7 **p7);
  285. int i2d_PKCS7_fp(FILE *fp,PKCS7 *p7);
  286. #endif
  287. PKCS7 *PKCS7_dup(PKCS7 *p7);
  288. PKCS7 *d2i_PKCS7_bio(BIO *bp,PKCS7 **p7);
  289. int i2d_PKCS7_bio(BIO *bp,PKCS7 *p7);
  290. #endif
  291.  
  292. DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNER_INFO)
  293. DECLARE_ASN1_FUNCTIONS(PKCS7_RECIP_INFO)
  294. DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNED)
  295. DECLARE_ASN1_FUNCTIONS(PKCS7_ENC_CONTENT)
  296. DECLARE_ASN1_FUNCTIONS(PKCS7_ENVELOPE)
  297. DECLARE_ASN1_FUNCTIONS(PKCS7_SIGN_ENVELOPE)
  298. DECLARE_ASN1_FUNCTIONS(PKCS7_DIGEST)
  299. DECLARE_ASN1_FUNCTIONS(PKCS7_ENCRYPT)
  300. DECLARE_ASN1_FUNCTIONS(PKCS7)
  301.  
  302. DECLARE_ASN1_ITEM(PKCS7_ATTR_SIGN)
  303. DECLARE_ASN1_ITEM(PKCS7_ATTR_VERIFY)
  304.  
  305.  
  306. long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg);
  307.  
  308. int PKCS7_set_type(PKCS7 *p7, int type);
  309. int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data);
  310. int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey,
  311.     const EVP_MD *dgst);
  312. int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i);
  313. int PKCS7_add_certificate(PKCS7 *p7, X509 *x509);
  314. int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509);
  315. int PKCS7_content_new(PKCS7 *p7, int nid);
  316. int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx,
  317.     BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); 
  318. int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si,
  319.                                 X509 *x509);
  320.  
  321. BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio);
  322. int PKCS7_dataFinal(PKCS7 *p7, BIO *bio);
  323. BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert);
  324.  
  325.  
  326. PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509,
  327.     EVP_PKEY *pkey, const EVP_MD *dgst);
  328. X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si);
  329. STACK_OF(PKCS7_SIGNER_INFO) *PKCS7_get_signer_info(PKCS7 *p7);
  330.  
  331. PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509);
  332. int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri);
  333. int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509);
  334. int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher);
  335.  
  336. PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx);
  337. ASN1_OCTET_STRING *PKCS7_digest_from_attributes(STACK_OF(X509_ATTRIBUTE) *sk);
  338. int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si,int nid,int type,
  339.     void *data);
  340. int PKCS7_add_attribute (PKCS7_SIGNER_INFO *p7si, int nid, int atrtype,
  341.     void *value);
  342. ASN1_TYPE *PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid);
  343. ASN1_TYPE *PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid);
  344. int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si,
  345.                 STACK_OF(X509_ATTRIBUTE) *sk);
  346. int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si,STACK_OF(X509_ATTRIBUTE) *sk);
  347.  
  348.  
  349. PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs,
  350.                             BIO *data, int flags);
  351. int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store,
  352.                     BIO *indata, BIO *out, int flags);
  353. STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, int flags);
  354. PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher,
  355.                                 int flags);
  356. int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, int flags);
  357.  
  358. int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si,
  359.                   STACK_OF(X509_ALGOR) *cap);
  360. STACK_OF(X509_ALGOR) *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si);
  361. int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg);
  362.  
  363. int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags);
  364. PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont);
  365. int SMIME_crlf_copy(BIO *in, BIO *out, int flags);
  366. int SMIME_text(BIO *in, BIO *out);
  367.  
  368. /* BEGIN ERROR CODES */
  369. /* The following lines are auto generated by the script mkerr.pl. Any changes
  370.  * made after this point may be overwritten when the script is next run.
  371.  */
  372. void ERR_load_PKCS7_strings(void);
  373.  
  374. /* Error codes for the PKCS7 functions. */
  375.  
  376. /* Function codes. */
  377. #define PKCS7_F_B64_READ_PKCS7                 120
  378. #define PKCS7_F_B64_WRITE_PKCS7                 121
  379. #define PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP         118
  380. #define PKCS7_F_PKCS7_ADD_CERTIFICATE             100
  381. #define PKCS7_F_PKCS7_ADD_CRL                 101
  382. #define PKCS7_F_PKCS7_ADD_RECIPIENT_INFO         102
  383. #define PKCS7_F_PKCS7_ADD_SIGNER             103
  384. #define PKCS7_F_PKCS7_CTRL                 104
  385. #define PKCS7_F_PKCS7_DATADECODE             112
  386. #define PKCS7_F_PKCS7_DATAINIT                 105
  387. #define PKCS7_F_PKCS7_DATASIGN                 106
  388. #define PKCS7_F_PKCS7_DATAVERIFY             107
  389. #define PKCS7_F_PKCS7_DECRYPT                 114
  390. #define PKCS7_F_PKCS7_ENCRYPT                 115
  391. #define PKCS7_F_PKCS7_GET0_SIGNERS             124
  392. #define PKCS7_F_PKCS7_SET_CIPHER             108
  393. #define PKCS7_F_PKCS7_SET_CONTENT             109
  394. #define PKCS7_F_PKCS7_SET_TYPE                 110
  395. #define PKCS7_F_PKCS7_SIGN                 116
  396. #define PKCS7_F_PKCS7_SIGNATUREVERIFY             113
  397. #define PKCS7_F_PKCS7_SIMPLE_SMIMECAP             119
  398. #define PKCS7_F_PKCS7_VERIFY                 117
  399. #define PKCS7_F_SMIME_READ_PKCS7             122
  400. #define PKCS7_F_SMIME_TEXT                 123
  401.  
  402. /* Reason codes. */
  403. #define PKCS7_R_CERTIFICATE_VERIFY_ERROR         117
  404. #define PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER         144
  405. #define PKCS7_R_CIPHER_NOT_INITIALIZED             116
  406. #define PKCS7_R_CONTENT_AND_DATA_PRESENT         118
  407. #define PKCS7_R_DECODE_ERROR                 130
  408. #define PKCS7_R_DECRYPTED_KEY_IS_WRONG_LENGTH         100
  409. #define PKCS7_R_DECRYPT_ERROR                 119
  410. #define PKCS7_R_DIGEST_FAILURE                 101
  411. #define PKCS7_R_ERROR_ADDING_RECIPIENT             120
  412. #define PKCS7_R_ERROR_SETTING_CIPHER             121
  413. #define PKCS7_R_INVALID_MIME_TYPE             131
  414. #define PKCS7_R_INVALID_NULL_POINTER             143
  415. #define PKCS7_R_MIME_NO_CONTENT_TYPE             132
  416. #define PKCS7_R_MIME_PARSE_ERROR             133
  417. #define PKCS7_R_MIME_SIG_PARSE_ERROR             134
  418. #define PKCS7_R_MISSING_CERIPEND_INFO             103
  419. #define PKCS7_R_NO_CONTENT                 122
  420. #define PKCS7_R_NO_CONTENT_TYPE                 135
  421. #define PKCS7_R_NO_MULTIPART_BODY_FAILURE         136
  422. #define PKCS7_R_NO_MULTIPART_BOUNDARY             137
  423. #define PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE     115
  424. #define PKCS7_R_NO_SIGNATURES_ON_DATA             123
  425. #define PKCS7_R_NO_SIGNERS                 142
  426. #define PKCS7_R_NO_SIG_CONTENT_TYPE             138
  427. #define PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE     104
  428. #define PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR         124
  429. #define PKCS7_R_PKCS7_DATAFINAL_ERROR             125
  430. #define PKCS7_R_PKCS7_DATASIGN                 126
  431. #define PKCS7_R_PKCS7_PARSE_ERROR             139
  432. #define PKCS7_R_PKCS7_SIG_PARSE_ERROR             140
  433. #define PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE     127
  434. #define PKCS7_R_SIGNATURE_FAILURE             105
  435. #define PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND         128
  436. #define PKCS7_R_SIG_INVALID_MIME_TYPE             141
  437. #define PKCS7_R_SMIME_TEXT_ERROR             129
  438. #define PKCS7_R_UNABLE_TO_FIND_CERTIFICATE         106
  439. #define PKCS7_R_UNABLE_TO_FIND_MEM_BIO             107
  440. #define PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST         108
  441. #define PKCS7_R_UNKNOWN_DIGEST_TYPE             109
  442. #define PKCS7_R_UNKNOWN_OPERATION             110
  443. #define PKCS7_R_UNSUPPORTED_CIPHER_TYPE             111
  444. #define PKCS7_R_UNSUPPORTED_CONTENT_TYPE         112
  445. #define PKCS7_R_WRONG_CONTENT_TYPE             113
  446. #define PKCS7_R_WRONG_PKCS7_TYPE             114
  447.  
  448. #ifdef  __cplusplus
  449. }
  450. #endif
  451. #endif
  452.